/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package estg.dae.projecto.bank.controllers;

import estg.dae.projecto.bank.impl.AccountInfoTO;
import estg.dae.projecto.bank.impl.AccountMovementTO;
import estg.dae.projecto.bank.impl.ElectronicOperationTO;
import estg.dae.projecto.exceptions.OfflinetransferFailedException;
import java.util.Collection;
import java.util.Date;

/**
 *
 * @author Marco
 */
public interface IBankControllerRemote {
    public boolean validateNib(String nib);
    public void executeOnlineOperation(ElectronicOperationTO operation) throws OfflinetransferFailedException ;
    public void confirmOnlineOperation(ElectronicOperationTO operation) throws OfflinetransferFailedException ;
    public void failedOnlineOperation(ElectronicOperationTO operation, String message);
    public void setSyncronizationTime(Date time);
    public AccountInfoTO getAccountInfo(String nib);
    public AccountInfoTO getAccountInfoFromCard(String cardNumber);
    public double getAccountBalance(String nib);
    public Collection<AccountMovementTO> getAccountMovement(String nib);
    public Collection<AccountMovementTO> getAccountMovementFromCard(String cardNumber);
}
